100 REM ***ACES UP*** 110 GOSUB 1760:MM$=" " 120 POKE 53280,0:POKE53281,0 130 POKE56334,1:POKE53272,21:POKE53265,155 140 PRINTCHR$(8);CHR$(142); 150 GOTO350 160 POKE53280,14:POKE53281,14:PRINTCHR$(142)"[147][146][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"; 170 FORA=1TO22:PRINT"[221]"SPC(38)"[221]";:NEXT 180 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203][157][157][192]" 190 FORA=217TO242:POKEA,PEEK(A)OR128:NEXT 200 PRINT" LOADSTAR PRESENTS:" 210 PRINT"  " 220 PRINT"  ACES UP  " 230 PRINT"   " 240 PRINT"  BY JASON OLDS  " 250 PRINT"   " 260 PRINT"  COPYRIGHT 1987  " 270 PRINT"   " 280 PRINT"  " 290 PRINT" PRESS SPACE TO CONTINUE" 300 IFPEEK(203)<>60THEN300 310 GOTO440 320 REM 330 REM 340 REM 350 PRINT"[147]LOADING DATA..." 360 IFML=0THENML=1:LOAD"ACESUP.CHARS",8,1 370 DIM CARD$(4,13):GOSUB 1820 380 OPEN4,8,4,"0:ACESUP.CARDS,S,R" 390 FORA=1TO4:FORB=1TO13:INPUT#4,CA$(A,B):NEXT:NEXT:CLOSE4 400 DIM C(52) 410 DIMP(4) 420 DIMS(4,13) 430 N=52:FORI=1TON:C(I)=I:NEXTI:GOTO160 440 BL$=" [157][157][157][157][157][157][157] [157][157][157][157][157][157][157] [157][157][157][157][157][157][157] [157][157][157][157][157][157][157] " 450 BL$=BL$+"[157][157][157][157][157][157][157] [144]@ [157][157][157][157][157][157][157] " 460 PRINT"[145]DO YOU NEED INTRUCTIONS (Y/N) ?" 470 GETA$:IFA$<>"Y"ANDA$<>"N"THEN470 510 REM ***SET UP CARDS, AND CHUFFLE*** 520 PRINT"[147]":POKE 53265,PEEK(53265)OR64:POKE53282,1 530 POKE 56334,PEEK(56334)OR1:POKE53272,(PEEK(53272)AND240)+12 540 IFA$="Y"THENPOKE53280,0:POKE53281,0:GOSUB1970 550 N=52:FORI=1TON-1:R=(N+1-I)*RND(0):R=INT(R)+I:T=C(R):C(R)=C(I):C(I)=T:NEXT 560 P(1)=0:P(2)=0:P(3)=0:P(4)=0 570 CO=1 580 PRINT"[147]"; 590 SP=1 600 P$="[144]@" 610 IFA$="Y"THENPOKE53280,0:POKE53281,0:GOSUB1970 620 PRINT"[147]":POKE 53280,0:POKE53281,6 630 REM ***SET BOARD*** 640 PRINT" ACES UP "; 650 PRINT"[146] J=POINTER LEFT K=POINTER RIGHT" 660 PRINT" RETURN=DEAL CARDS SPACE=REMOVE CARD" 670 PRINT" P=PUSH CARD Q=QUIT GAME"; 680 REM ***PRINT FIRST CARD*** 690 POKE 2,203:CP=1 700 IFCO=53THEN880 705 N=1:GOSUB1090 710 N=2:GOSUB1090 720 N=3:GOSUB1090 730 N=4:GOSUB1090 740 GOSUB 1030 750 GOSUB 1740 760 REM***MAIN*** 770 REM 780 GETA$:IFA$=""THEN780 790 IF A$="J"THENSP=SP-1:IFSP=0THENSP=4 800 IF A$="K"THENSP=SP+1:IFSP=5THENSP=1 810 IF A$=CHR$(13)THENGOSUB1740:GOTO700 820 IFA$=" "THENGOTO1140 830 IFA$="P"THEN1420 840 IFA$="Q"THEN1950 850 GOSUB1030 860 GOTO780 870 REM ***CHECK FOR A WINNER*** 880 IFP(1)=1ANDP(2)=1ANDP(3)=1ANDP(4)=1THEN900 890 GOTO 1610 900 IF S(1,1)=13ORS(1,1)=26ORS(1,1)=39ORS(1,1)=52THEN920 910 GOTO 1610 920 IF S(2,1)=13ORS(2,1)=26ORS(2,1)=39ORS(2,1)=52THEN940 930 GOTO 1610 940 IF S(3,1)=13ORS(3,1)=26ORS(3,1)=39ORS(3,1)=52THEN960 950 GOTO 1610 960 IF S(4,1)=13ORS(4,1)=26ORS(4,1)=39ORS(4,1)=52THEN980 970 GOTO 1610 980 GOTO1680 990 END 1000 REM ***NUMBER TO CARD CONVERTER*** 1010 X=INT(NUM/13.1)+1:Y=INT(13*(1-X))+NUM 1020 RETURN 1030 PRINT"";SPC(8);:FORA=1TOP(1)+5:PRINT"";:NEXT:PRINT" " 1040 PRINT"";SPC(15);:FORA=1TOP(2)+5:PRINT"";:NEXT:PRINT" " 1050 PRINT"";SPC(22);:FORA=1TOP(3)+5:PRINT"";:NEXT:PRINT" " 1060 PRINT"";SPC(29);:FORA=1TOP(4)+5:PRINT"";:NEXT:PRINT" " 1070 PRINT"";SPC(SP*7+1);:FORA=1TOP(SP)+5:PRINT"";:NEXT:PRINTP$ 1080 RETURN 1090 REM PUT CARD IN PILE 1 2 3 OR 4 1100 NUM=C(CO):GOSUB1000:P(N)=P(N)+1: 1110 S(N,P(N))=NUM:PRINT"";SPC(N*7-1);:IFP(N)<>1THENFORA=1TOP(N)-1:PRINT"";:NEXT 1120 PRINTCA$(X,Y) 1130 CO=CO+1:RETURN 1140 REM***REMOVE CARD*** 1150 IFP(SP)=0THEN1380 1160 NUM=S(SP,P(SP)):GOSUB1000 1170 B1=X:B2=Y:H1=Y 1180 FORA=1TO4 1190 IFP(A)=0THENGOTO1220 1200 NUM=S(A,P(A)) 1210 GOSUB1000:IFB1=XANDY>B2THENH1=Y 1220 NEXT 1230 IF H1=B2 THEN 1380 1240 D=0:FORA=1TO4:NUM=S(A,P(A)):GOSUB1000:IFB1=XTHEND=D+1 1250 NEXT 1260 IFD=1THEN1380 1270 P(SP)=P(SP)-1 1280 PRINT""; 1290 IFP(SP)=0THEN1310 1300 FORA=1TOP(SP):PRINT"";:NEXT 1310 PRINTSPC(SP*7-1);BL$ 1320 PRINT""; 1330 IFP(SP)=0THEN1370 1340 IFP(SP)=1THEN1360 1350 FORA=1TOP(SP)-1:PRINT"";:NEXT 1360 NUM=S(SP,P(SP)):PRINTSPC(SP*7-1);:GOSUB1000:PRINTCA$(X,Y) 1370 GOTO760 1380 PRINT".............CAN'T DO THAT..............[146]" 1390 GOSUB1790:FORA=1TO500:NEXT 1400 PRINT" ACES UP [146]"; 1410 GOTO760 1420 REM ***PUSH*** 1430 IFSP=0THEN1380 1440 SS=0 1450 FORA=4TO1STEP-1:IFP(A)=0THENSS=A 1460 NEXT 1470 IFSS=0THEN1380 1480 P(SS)=P(SS)+1:S(SS,1)=S(SP,P(SP)):P(SP)=P(SP)-1 1490 PRINT""; 1500 IFP(SP)=0THEN1520 1510 FORA=1TOP(SP):PRINT"";:NEXT 1520 PRINTSPC(SP*7-1);BL$ 1530 PRINT""; 1540 NUM=S(SS,P(SS)):PRINTSPC(SS*7-1);:GOSUB1000:PRINTCA$(X,Y) 1550 PRINT""; 1560 IFP(SP)=0THEN1600 1570 IFP(SP)=1THEN1590 1580 FORA=1TOP(SP)-1:PRINT"";:NEXT 1590 NUM=S(SP,P(SP)):PRINTSPC(SP*7-1);:GOSUB1000:PRINTCA$(X,Y) 1600 GOTO760 1610 PRINT""; 1612 PRINTMM$:PRINTMM$:PRINTMM$"[145][145][145]" 1620 PRINT" SORRY, NO MORE DEALS..." 1630 PRINT" DO YOU WISH TO PLAY AGAIN (Y/N) ?" 1640 GETA$:IFA$<>"Y"ANDA$<>"N"THEN1640 1645 POKE56334,1:POKE2,21:POKE53265,27:PRINT"[147]" 1650 IFA$="Y"THENPOKE 2,0:GOTO 160 1660 IFA$<>"N"THEN1640 1662 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 1664 IFER<>63THENEND 1670 SYS 49234:LOAD "HELLO CONNECT",8:END 1680 REM ***WINNER*** 1690 PRINT"[147]";:FORA=1TO24:PRINT:NEXT 1695 POKE56334,1:POKE2,21:POKE53265,27:POKE53280,.:POKE53281,.:POKE53272,21 1700 PRINT" CONGRATULATIONS ... YOU WON!!":FORA=1TO10:PRINT:NEXT 1710 FOR A=1TO100:POKE 53280,A AND 15:POKE 53281,A AND 15:FOR B=1 TO 25:NEXT 1720 NEXT:PRINT"" 1730 POKE 53280,0:POKE 53281,0:GOTO1630 1740 PRINT"DEAL #";(CO-1)/4;" OUT OF 13"; 1745 IFINT((CO-1)/4)<>13THENPRINT:GOTO1780 1747 PRINT"[159] YOUR LAST DEAL" 1750 RETURN 1760 REM SETUP SID 1770 SD=54272:FOR A=SD TO SD+24:POKE A,0:NEXT 1780 RETURN 1790 REM BEEP 1800 POKESD+24,15:POKE SD+5,31:POKESD+6,208:POKESD,240:POKESD+1,4:POKESD+4,33 1810 FORS=1TO200:NEXT:POKESD+4,0:POKESD,0:POKESD+1,0:POKESD+24,0:RETURN 1820 REM MACHINE LANGUAGE 1830 FOR A=49152 TO 49296:READ B:POKE A,B:NEXT 1840 SYS 49194:POKE 2,0 1850 RETURN 1860 DATA169,1,141,25,208,162,59,160,216,173,18,208,197,2,176,9,169,29,141,24 1870 DATA208,165,2,208,11,162,27,160,200,169,21,141,24,208,169,0,141,18,208,76 1880 DATA 128 1890 DATA192,173,20,3,141,160,3,173,21,3,141,161,3,120,169,0,141,20,3,169 1900 DATA192,141,21,3,169,1,141,26,208,169,27,141,17,208,169,127,141,13,220,88 1910 DATA96,120,173,160,3,141,20,3,173,161,3,141,21,3,169,240,141,26,208,169,27 1920 DATA141,17,208,169,0,141,13,220,169,120,141,25,208,169,21,141,24,208,32,132 1930 DATA255,88,96,248,104,104,173,13,220,41,1,240,3,76,49,234,76,188,254,0,0,0 1940 DATA 0 1950 POKE 56334,1:POKE 2,21:POKE53265,27:POKE 53280,0:POKE 53281,0 1960 PRINT"[147]";:GOTO 1630 1970 POKE2,106:GOSUB 2450:PRINT" ACES UP "; 1980 PRINT"[146][159]ACES ARE HIGH, RANKING ABOVE KINGS." 1990 PRINT"[156]A ROW OF FOUR CARDS ARE DEALT AS ABOVE. "; 2000 PRINT"ANY CARD THAT IS LOWER THAN ANOTHER CARD"; 2010 PRINT"OF THE SAME SUIT MAY BE DISCARDED. "; 2020 PRINT"EXAMPLE: THE ABOVE CARDS SHOW THE ACE" 2030 PRINT"AND KING OF HEARTS. THE KING IS LOWER" 2040 PRINT"THAN THE ACE, AND MAY BE DISCARDED." 2050 PRINT"[153]YOU MOVE THE CURSOR, USING THE 'J' AND" 2060 PRINT"'K' KEYS. FOLLOW THE COMPUTER'S MOVES." 2070 FOR A=1 TO 9000:NEXT:X=1 2080 FOR A=1 TO 800:NEXT:X=X+1:PRINT"";SPC((X-1)*8-1);" ";SPC(7);"@" 2090 IFX<3 THEN 2080 2100 POKE214,20:PRINT:PRINT"[158]NOW, THE KING IS REMOVED BY PRESSING THE"; 2110 PRINT"SPACE BAR.":FOR A=1 TO 4000:NEXT 2120 PRINT""SPC(21);BL$;""; 2130 GOSUB 2420 2140 POKE 2,114:PRINT"[147]";SPC(5);CA$(2,5);"";SPC(13);CA$(1,13);"";SPC(28);CA$(3,7) 2150 PRINT""SPC(23);"@" 2160 PRINT" ACES UP "; 2170 PRINT"[146][159]SINCE NO OTHER MOVES ARE POSSIBLE, YOU" 2180 PRINT"WOULD PRESS THE RETURN KEY AND THE NEXT" 2190 PRINT"SET OF FOUR CARDS WILL BE PLACED ON TOP" 2200 PRINT"OF THE ALREADY EXISTING CARDS." 2210 FOR A=1 TO 5000:NEXT:PRINT""SPC(5);CA$(3,1);"";SPC(13);CA$(2,10) 2220 PRINT""SPC(21);CA$(2,4);"";SPC(28);CA$(4,5);""SPC(23);"@" 2230 PRINT"[156]TRY TO DISCARD AS MANY AS POSSIBLE EACH" 2240 PRINT"MOVE. FIRST, THE FIVE OF DIAMONDS IS" 2250 PRINT"DISCARDED. " 2260 FOR A=1 TO 5000:NEXT 2270 PRINT""SPC(21);BL$;"[145][157][157][157]@" 2280 PRINT""; 2290 PRINT"NEXT, THE SIX OF CLUBS IS PUSHED ON THE EMPTY PILE BY PRESSING 'P'." 2300 FORA=1TO5000:NEXT:PRINT""SPC(23);" @":FOR A=1 TO 1000:NEXT 2310 PRINT""SPC(28);CA$(3,7);" @[157] [145] ";SPC(21);CA$(4,5) 2320 PRINT"[154]THE TWO OF SPADES IS DICARDED," 2330 FOR A=1TO5000:NEXT:PRINT"";SPC(30);" ":PRINT""SPC(7);"@" 2340 FORA=1TO2000:NEXT:PRINT""SPC(5);CA$(2,5);" @[157] [145] "; 2350 PRINT"[158]ALONG WITH THE SIX OF DIAMONDS." 2360 FOR A=1 TO 5000:NEXT:PRINT"";SPC(5);BL$;"[145][157][157][157]@" 2370 PRINT"[129]THEN THE JACK IS PUSHED OFF THE ACE." 2380 PRINT"[154]TRY TO END UP WITH JUST THE FOUR ACES" 2390 PRINT"LEFT AT THE TOP. IT DOESN'T HAPPEN" 2395 PRINT"VERY OFTEN." 2400 FOR A=1 TO 3000:NEXT:PRINT""SPC(7);" @" 2410 FORA=1TO1000:NEXT:PRINT""SPC(13);CA$(1,13);" @[157] [145] "SPC(5);CA$(2,10) 2420 PRINT" PRESS ANY KEY[146]"; 2430 GETA$:IFA$=""THEN2430 2440 RETURN 2450 PRINT"[147]"SPC(5);CA$(2,5);"";SPC(13);CA$(1,13);""; 2460 PRINTSPC(21);CA$(1,12);"";SPC(28);CA$(3,7) 2470 PRINT""SPC(7);"@" 2480 RETURN